1. Field of the Invention
The present invention relates to systems and methods for presenting media programs, and in particular to a system and method and apparatus for conveniently creating sharable files from portions of those media programs.
2. Description of the Related Art
The dissemination and playback of media programs has undergone substantial changes in the past decade. Previously, media programs (which may include audio, video, or both) were disseminated either by analog broadcast (conventional, satellite, or cable) or by physical dissemination of films to movie theaters. These traditional dissemination and playback means remain in use after the advent of digital technology. However, digital technologies have had a profound effect on the dissemination and playback of media programs.
Largely due to improved signal processing and more and widespread high-speed Internet access availability (e.g. digital subscriber line or DSL, fiber, and/or satellite), digital technology permits the dissemination and playback of media programs via the Internet via the use of content delivery networks having web servers and streaming media servers.
Web servers typically use HTTP (hypertext transport protocol) on top of TCP (transfer control protocol) to transfer files over the network. Streaming media servers deliver media content continuously to a media player and media playback occurs while further portions of the media program are received. The end-user is capable of playing the media immediately upon delivery by the content provider.
Traditional streaming techniques originate from a single provider delivering a stream of data to a set of end-users. High bandwidths and central processing unit (CPU) throughput are required to deliver a single stream to a large audience, and the required bandwidth of the provider increases as the number of end-users increases. Typically, streamed media is delivered via a content delivery network (CDN) having a plurality of dedicated streaming media servers having high bandwidth capabilities.
A streaming media server is a specialized device that accepts requests for video files, and with information about the format, bandwidth and structure of those files, delivers just the amount of data necessary to play the video, at the rate needed to play it. Streaming media servers may also account for the transmission bandwidth and capabilities of the media player.
Unlike the web server, the streaming media server communicates with the user computer using control messages and data messages to adjust to changing network conditions as the video is played. These control messages can include commands for trick play functions such as fast forward, fast reverse, pausing, or seeking to a particular part of the file. Since a streaming media server transmits video data only as needed and at the rate that is needed, precise control over the number of streams served can be maintained. Streaming media servers may use HTTP and TCP to deliver video streams, but generally use RSTP (real time streaming protocol) and UDP (user datagram protocol). These protocols permit control messages and save bandwidth by reducing overhead. Unlike TCP, when data is dropped during transmission, UDP does not transmit resent requests. Instead, the server continues to send data. Streaming media servers can also deliver live webcasts and can multicast, which allows more than one client to tune into a single stream, thus saving bandwidth.
Streaming media players provide random access to any point in the media program through the use of control messages transmitted from the media player to the streaming media server. Streaming media servers allow the media to be played back via media players that can be embedded in webpages. This is usually accomplished by embedding code provided in the source of the webpage. For example, if the webpage host wishes to embed a particular media program in a webpage, the host's webmaster copies the code including a link to media program player instructions as well as a link to the media program itself into the source of the webpage. Embedding may also be used to present a media program in a social forum or other media. When the embedded media program player code instructions are executed, the user's browser presents a rendering of the media program player with the playback area.
One of the problems with the presentation of media programs in digital form is protection of the copyrights to the media program. Streaming media servers help solve this problem as the media program itself is not downloaded to the user-computer in such a way that it can easily be copied or assembled into a media program file. Instead, the media program data is buffered by the media program player, played back when appropriate, and discarded in favor of other portions of the media program. While there are software programs that can be used to digitally extract (or rip) media programs from the media program player, many media program players and CDNs are designed to make such ripping difficult or impossible.
At the same time, it is sometimes beneficial to allow users to create lightweight (e.g. small) copies of portions of media programs and disseminate or share such copies with friends. The dissemination of such copies can promote the media program and entice others to view it, without encouraging them to obtain the full media program from unauthorized sources. Such copying may be even more attractive to the owner of the media program if it can be monitored and controlled.
What is needed is a method and apparatus for allowing users to create easily shareable copies of media programs while permitting the monitoring and control of such copies. The present invention satisfies that need.